// /**
//  * @param {number[]} nums
//  * @return {number[]}
//  */
//  var largestDivisibleSubset = function(nums) {
//     let mapper=new Map();
//     nums.sort((a,b) => a-b);
//     let max=null;
//     let i=0;
//     if(nums[0]===1){
//         i=1;
//     }
//     let flag=false;
//     while(i<nums.length){
//         flag=false;
//         for(let j of mapper.keys()){
//             let temp=mapper.get(j);
//             if(nums[i]%temp[temp.length-1]===0){
//                 temp.push(nums[i]);
//                 if(!max || mapper.get(max).length<temp.length){
//                     max=j;
//                 }
//                 flag=true;
//             }
//         }
//         if(!flag){
//             mapper.set(nums[i],Array.of(nums[i]));
//             if(!max){
//                 max=nums[i];
//             }
//         }
//         i++;
//     }
//     if(!max){
//         return nums[0];
//     }
//     return nums[0]===1 ? Array.of(1).concat(mapper.get(max)) : mapper.get(max);
// };

// console.log(largestDivisibleSubset([1,2,3,4,5,6,7,8,9,16]))



var largestDivisibleSubset = function(nums) {
    nums.sort((a,b) => a-b);
    let max=0;
    let dp=new Array(nums.length).fill(0).map(() => new Array());
    for(let [i,val] of nums.entries()){
        let j=i-1;
        let n=null,l=0;
        while(j>=l){
            if(val%nums[j]===0){
                if(!n){
                    n=j;
                    l=dp[j].length;
                }
                else{
                    n= dp[n].length<dp[j].length ? j:n;
                    l=dp[n].length;
                }
            }
            j--;
        }
        if(n===null){
            dp[i]=Array.of(val);
        }
        else{
            dp[i]=dp[n].concat(Array.of(val));
            max=dp[max].length<dp[i].length ? i:max;
        }
    }
    return dp[max];
};

console.log(largestDivisibleSubset([5,9,18,54,108,540,90,180,360,720]))

// 执行用时：
// 132 ms
// , 在所有 JavaScript 提交中击败了
// 40.63%
// 的用户
// 内存消耗：
// 41.5 MB
// , 在所有 JavaScript 提交中击败了
// 65.63%
// 的用户